package com.ggqq.day316;

import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
/*
* 数组中占比超过一半的元素称之为主要元素。给定一个整数数组，找到它的主要元素。若没有，返回-1。
*
* 注意：题目已经给了  数组中占比超过一半的元素称之为主要元素 这个条件
* */
public class MainElement {
    public static void main(String[] args){
        int[] a = {1,2,5,9,5,9,5,5,5};
        MainElement mainElement = new MainElement();
        System.out.println(mainElement.majortyElement(a));
    }
    public int majortyElement(int[] nums){
        Map<Integer,Integer> map = new HashMap<>();
        for(int num:nums){
            map.put(num,map.getOrDefault(num,0)+1);//计数
        }
        //通过Map.entrySet遍历key和value
        for(Map.Entry<Integer,Integer> entry:map.entrySet()){
            if(entry.getValue()>nums.length/2){
                return entry.getKey();
            }
        }
        return -1;

    }
}
